"""
DSL脚本
"""

# Combined script (English DSL keywords)
COMBINED_SCRIPT = '''
WHEN GREETING DO
    RESPOND "您好！有什么可以帮您？"
    SET_STATE GREETING_STATE
    WHEN ROBOT_ANSWER RESPOND "您好！欢迎来到我们的电子产品购物平台！我们提供：\n• 最新的电子产品销售和咨询\n• 技术支持和故障排除\n• 订单管理和售后服务\n•请问有什么可以帮助您的吗？"
    WHEN HUMAN_ANSWER RESPOND "请拨打客服电话：1234567890"

    WHEN PRODUCT_INFO DO
        SET_STATE IDLE

    WHEN COMPLAINT DO
        SET_STATE COMPLAINT_HANDLING
    WHEN GOODBYE DO
        SET_STATE IDLE

WHEN ORDER_INQUIRY DO
    SET_STATE ORDER_PROCESSING
    IF user_authenticated THEN
        ORDER LIST user_id
        RESPOND "正在为您查询订单信息，请稍等..."
    ELSE
        RESPOND "请先登录以查询您的订单信息。您可以点击登录按钮进行登录。"

WHEN ORDER_CANCEL DO
    SET_STATE ORDER_PROCESSING
    IF user_authenticated THEN
        IF order_exists THEN
            ORDER CANCEL order_id
            RESPOND "订单已成功取消。"
        ELSE
            RESPOND "抱歉，未找到该订单。请确认订单号是否正确"
    ELSE
        RESPOND "请先登录以取消订单。"

WHEN PRODUCT_INFO DO
    SET_STATE IDLE
    RESPOND "很高兴为您介绍我们的产品！智能手机系列：CS手机一号、CS手机二号、CS手机三号等\n笔记本电脑：CS电脑一号、CS电脑二号、CS电脑三号等\n平板：CS平板一号、CS平板二号、CS平板三号等\n音频设备：CS耳机一号、CS耳机二号、CS耳机三号等\n\n"
    WHEN COMPUTER DO
        SET_STATE COMPUTER_INFO
        RESPOND "我们提供多种笔记本电脑选择：\n• CS电脑一号：CS电脑一号的详细信息\n• CS电脑二号：CS电脑二号的详细信息\n• CS电脑三号：CS电脑三号的详细信息\n\n所有电脑均享受：\n- 全国联保服务\n- 7天无理由退货\n- 免费技术咨询\n\n您想了解哪款电脑的详细信息？"
    WHEN PHONE DO
        SET_STATE PHONE_INFO
        RESPOND "我们提供多品牌智能手机：\n• CS手机一号：CS手机一号的详细信息\n• CS手机二号：CS手机二号的详细信息\n• CS手机三号：CS手机三号的详细信息\n\n手机特色：\n- 最新旗舰机型\n- 官方正品保证\n- 分期付款支持\n- 以旧换新服务\n\n您对哪款手机感兴趣？"
    WHEN PAD DO
        SET_STATE PAD_INFO
        RESPOND "我们提供多款平板电脑：\n• CS平板一号：CS平板一号的详细信息\n• CS平板二号：CS平板二号的详细信息\n• CS平板三号：CS平板三号的详细信息\n\n平板优势：\n- 轻薄便携设计\n- 长续航电池\n- 支持手写笔\n- 适配多种应用场景\n\n需要了解哪款平板的配置和价格？"
    WHEN EARSET DO
        SET_STATE EARSET_INFO
        RESPOND "我们提供多款耳机产品：\n• CS耳机一号：CS耳机一号的详细信息\n• CS耳机二号：CS耳机二号的详细信息\n• CS耳机三号：CS耳机三号的详细信息\n\n耳机特色：\n- 主动降噪技术\n- 高品质音质\n- 长续航能力\n- 舒适佩戴体验\n\n您想了解哪款耳机的详细功能？"


WHEN COMPLAINT DO
    SET_STATE COMPLAINT_HANDLING
    RESPOND "非常抱歉给您带来不便！我们非常重视每一位客户的意见。\n\n为便于快速处理，请先选择问题分类：\n- 技术问题：如设备无法启动、功能异常、连接失败等\n- 服务问题：如发货/配送、售后体验、客服响应等\n\n如需人工协助，请直接回复：转人工\n\n随后请提供：\n1. 问题发生的具体时间\n2. 详细的问题描述\n3. 您的期望解决方案\n4. 如为技术问题，请补充产品型号和序列号"

WHEN GOODBYE DO
    SET_STATE IDLE
    RESPOND "感谢您选择我们的服务！\n\n如果后续有任何问题，随时欢迎联系我们。"

WHEN UNKNOWN DO
    RESPOND "我可以帮助您：\n\n1. 查询订单状态和管理\n2. 了解产品信息\n3. 提供产品技术支持\n4. 接收投诉建议\n\n请告诉我您需要哪项帮助？"
'''

# 一个更简单的演示脚本：逻辑精简、仅演示不同脚本下的不同行为
SIMPLE_SCRIPT = '''
WHEN GREETING DO
    SET_STATE GREETING_STATE
    RESPOND "欢迎使用简化客服脚本（Demo）。我可以打招呼、演示查询与结束对话。"

WHEN ORDER_INQUIRY DO
    SET_STATE ORDER_PROCESSING
    RESPOND "本简化脚本不连接订单系统，仅作演示：收到‘查询订单’意图。"

WHEN GOODBYE DO
    SET_STATE IDLE
    RESPOND "感谢体验简化脚本，欢迎下次再来！"

WHEN UNKNOWN DO
    RESPOND "这是简化脚本：可用功能有‘问候 / 查询订单 / 再见’。"
'''

def get_all_scripts():
    """获取所有脚本范例"""
    return {
        'combined': COMBINED_SCRIPT,
        'simple': SIMPLE_SCRIPT
    }

def get_script_by_name(name):
    """根据名称获取脚本（支持 'combined' 与 'simple'）"""
    mapping = get_all_scripts()
    key = (name or 'combined').lower()
    return mapping.get(key, COMBINED_SCRIPT)
